package lab1;

import org.junit.Assert;
import org.junit.Test;

public class T1_PhoneNumberProblem {

    @Test
    public void verfiy(){
        String areaCode = "123";//地区码
        String prefix = "333";//前缀
        String suffix = "4567";//后缀
        boolean[] validArr = new boolean[3];

        //判断地区码：空白或三位数字
        if (areaCode.equals("")){
            validArr[0] = true;//空白则地区码合法
        }else{
            //地区码不是空白，需要判断是否为3位数字
            for (int i = 0; i < areaCode.length(); i++) {
                if(!Character.isDigit(areaCode.charAt(i))){
                    validArr[0] = false;
                    break;
                }
                validArr[0] = true;
            }
        }

        //判断前缀：非'0'或'1'的三位数字；
        if(prefix.length() != 3){
            validArr[1] = false;//长度不为3，直接不合法
        }else{
            //是否都是数字
            for (int i = 0; i < prefix.length(); i++) {
                if(!Character.isDigit(prefix.charAt(i)) || prefix.charAt(i) == '0' || prefix.charAt(i) == '1'){
                    validArr[1] = false;
                    break;
                }
                validArr[1] = true;
            }
        }

        //判断后缀：4位数字。
        if(suffix.length() != 4){
            validArr[2] = false;//长度不为4，直接不合法
        }else {
            for (int i = 0; i < suffix.length(); i++) {
                if(!Character.isDigit(suffix.charAt(i))){
                    validArr[2] = false;
                    break;
                }
                validArr[2] = true;
            }
        }

        //断言数组中是否全是true
        Assert.assertArrayEquals(new boolean[]{true,true,true},validArr);
    }
}
